package ui.juego.mapamundi

import dominio.datos.Caracteristica
import dominio.ubicaciones.Pais
import org.uqbar.commons.model.ObservableUtils
import org.uqbar.commons.utils.Observable
import org.uqbar.commons.model.UserException

@Observable
class EditarCaracteristica {
	
	@Property Pais pais
	@Property Caracteristica caracteristicaSeleccionada
	
	@Property String inputDato 
		
	
	new(Pais pais) {
		this.pais = pais
	}
	
	def getCaracteristicas(){
		pais.caracteristicas
	}

	def eliminarCaracteristicaSeleccionada() {
		if(caracteristicaSeleccionada != null)
			caracteristicas.remove(caracteristicaSeleccionada)
		else throw new UserException("No hay una caracteristica seleccionada!")
		ObservableUtils.firePropertyChanged(this,"caracteristicas", pais.caracteristicas)
		ObservableUtils.firePropertyChanged(pais,"caracteristicas", pais.caracteristicas)
	}

	

	
	
	def agregarCaracteristica(Caracteristica caracteristica) {
		caracteristica.dato = caracteristica.dato.trim
		if(!caracteristica.dato.nullOrEmpty) {
			caracteristicas += caracteristica
			inputDato = null
		}
		else throw new UserException("No es un dato valido!")
		ObservableUtils.firePropertyChanged(this, "caracteristicas", caracteristicas)
		ObservableUtils.firePropertyChanged(pais, "caracteristicas", caracteristicas)
	}

}